/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uk.ac.bath.domains.mover;

import uk.ac.bath.base.EnvironmentIF;
import uk.ac.bath.base.Space;
import uk.ac.bath.domains.misc.Limited2DSpace;
import uk.ac.bath.domains.misc.PulseFood2D;
import uk.ac.bath.base.EnvironmentFactoryIF;
import uk.ac.bath.gui.View;

/**
 *
 * @author pjl
 */
public class MrkINeuralProvider extends EnvironmentFactoryIF {

    int spaceSize = 60;

    public MrkINeuralProvider() {
        super("MoverMrkI_NN");
    }

    public Environment create() {
        int pulseWidth = spaceSize - 30 + 1;
        int pulseStart = (spaceSize - pulseWidth) / 2;
        PulseFood2D food = new PulseFood2D(pulseStart, pulseWidth);

        food.replenishFood();
        Space space = new Limited2DSpace(spaceSize, spaceSize);

        MoverCellMrk1NeuralFactory factory = new MoverCellMrk1NeuralFactory();
        Environment env = new MoverEnvironment(space, food, factory);
        return env;
    }

    public View createView(EnvironmentIF env) {
        return new MoverPanel((Environment) env);
    }
}
